if (tag->priv->pixels_inside_wrap_set)
dest->pixels_inside_wrap = vals->pixels_inside_wrap;
+ if (tag->priv->line_height_set)
+ dest->line_height = vals->line_height;
+
if (tag->priv->tabs_set)
{
if (dest->tabs)
priv->pixels_above_lines_set ||
priv->pixels_below_lines_set ||
priv->pixels_inside_wrap_set ||
+ priv->line_height_set ||
priv->tabs_set ||
priv->underline_set ||
priv->overline_set ||
pango_attr_list_insert (attrs, attr);
}
-
+
if (!size_only)
{
attr = gtk_text_attr_appearance_new (appearance);
pango_attr_list_insert (attrs, attr);
}
+#if PANGO_VERSION_CHECK(1, 49, 0)
+ if (style->line_height != 0.0)
+ {
+ attr = pango_attr_line_height_new (style->line_height);
+ attr->start_index = start;
+ attr->end_index = start + byte_count;
+
+ pango_attr_list_insert (attrs, attr);
+ }
+#endif
+
if (style->font_features)
{
attr = pango_attr_font_features_new (style->font_features);
pango_attr_list_insert (attrs, attr);
}
-
}
static void
PROP_PIXELS_ABOVE_LINES,
PROP_PIXELS_BELOW_LINES,
PROP_PIXELS_INSIDE_WRAP,
+ PROP_LINE_HEIGHT,
PROP_EDITABLE,
PROP_WRAP_MODE,
PROP_JUSTIFICATION,
PROP_PIXELS_ABOVE_LINES_SET,
PROP_PIXELS_BELOW_LINES_SET,
PROP_PIXELS_INSIDE_WRAP_SET,
+ PROP_LINE_HEIGHT_SET,
PROP_EDITABLE_SET,
PROP_WRAP_MODE_SET,
PROP_JUSTIFICATION_SET,
0,
GTK_PARAM_READWRITE));
+ /**
+ * GtkTexTag:line-height:
+ *
+ * Factor to scale line height by.
+ *
+ * Since: 4.6
+ */
+ g_object_class_install_property (object_class,
+ PROP_LINE_HEIGHT,
+ g_param_spec_float ("line-height",
+ P_("Line height factor"),
+ P_("The factor to apply to line height"),
+ 0.0, 10.0, 0.0,
+ GTK_PARAM_READWRITE));
+
/**
* GtkTextTag:strikethrough:
*
P_("Pixels inside wrap set"),
P_("Whether this tag affects the number of pixels between wrapped lines"));
+ ADD_SET_PROP ("line-height-set", PROP_LINE_HEIGHT_SET,
+ P_("Line height set"),
+ P_("Whether this tag affects the height of lines"));
+
ADD_SET_PROP ("strikethrough-set", PROP_STRIKETHROUGH_SET,
P_("Strikethrough set"),
P_("Whether this tag affects strikethrough"));
size_changed = TRUE;
break;
+ case PROP_LINE_HEIGHT:
+ priv->line_height_set = TRUE;
+ priv->values->line_height = g_value_get_float (value);
+ g_object_notify (object, "line-height-set");
+ size_changed = TRUE;
+ break;
+
case PROP_EDITABLE:
priv->editable_set = TRUE;
priv->values->editable = g_value_get_boolean (value);
g_value_set_int (value, priv->values->pixels_inside_wrap);
break;
+ case PROP_LINE_HEIGHT:
+ g_value_set_float (value, priv->values->line_height);
+ break;
+
case PROP_EDITABLE:
g_value_set_boolean (value, priv->values->editable);
break;
g_value_set_boolean (value, priv->pixels_inside_wrap_set);
break;
+ case PROP_LINE_HEIGHT_SET:
+ g_value_set_boolean (value, priv->line_height_set);
+ break;
+
case PROP_EDITABLE_SET:
g_value_set_boolean (value, priv->editable_set);
break;